1. Field
This application relates generally to data processing and more specifically, but not exclusively, to detecting and concealing data errors.
2. Introduction
In a typical data processing system, data is transferred between system components that provide different data processing functionality. For example, a system component that operates on data also may send the data to and retrieve the data from a storage component in the system. Similarly, in a communication system, one component may generate data and then transmit the data to another component that uses the data for a designated purpose.
In practice, data may be corrupted in some manner when it is transferred between system components. For example, data may be corrupted when it is written into or read out of a storage medium or when it is transmitted through a communication medium. As a result, the data a system component receives from another system component may include one or more errors. For example, a bit in a block of pulse code modulation (“PCM”) data that was transmitted by a transmitting component as a “0” (or “−1”) may be received at a receiving component as a “1” due to interference along the data transmission path.
Various techniques may be used to handle errors in received data. For example, upon receipt of a data stream a receiving device may convert the received data into representative PCM data (sampled at the Nyquist frequency) and process the PCM data to determine whether there is an error in the data. In some cases, a receiving device may request that a transmitting device resend any data that is received with one or more errors. In some cases, a receiving device may perform some type of post-processing on the PCM data to correct the errors. For example, in cases where the PCM data represents a waveform (e.g., an audio signal), the receiving device may employ filtering operations that process a relatively large portion of the waveform data (e.g., process the PCM data that precedes and follows one or more corrupted data bits in time) to correct the error.
Error processing schemes such as those discussed above may have several drawbacks. For example, data retransmissions may result in an increase in data processing latency, an increase in processing load, and an increase in traffic over the data transmission path. Similarly, post-processing operations may result in an increase in data processing latency and may involve complex, power-hungry signal processing operations.